﻿using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using AnQinFrameWorkAPI.Common.Enum;

namespace AnQinFrameWorkAPI.Entity.Develop.Entity;

/// <summary>
///     项目管理表模型
/// </summary>
[Table("DevelopProjectManager")]
public class DevelopProjectManagerModel
{
    /// <summary>
    ///     项目管理id
    /// </summary>
    [Key]
    [MaxLength(36)]
    public Guid Id { get; set; }

    /// <summary>
    ///     项目Id
    /// </summary>
    [MaxLength(36)]
    public string? ProjectId { get; set; }

    /// <summary>
    ///     项目编码
    /// </summary>
    [MaxLength(50)]
    public string? ProjectCode { get; set; }

    /// <summary>
    ///     项目名称
    /// </summary>
    [MaxLength(50)]
    public string? ProjectName { get; set; }

    /// <summary>
    ///     销售人员Id
    /// </summary>
    [MaxLength(36)]
    public string? SaleStaffId { get; set; }

    /// <summary>
    ///     销售人员名称
    /// </summary>
    [MaxLength(50)]
    public string? SaleStaffName { get; set; }

    /// <summary>
    ///     销售状态
    /// </summary>
    public DevelopEnum.SaleStatusEnum? SaleStatus { get; set; }

    /// <summary>
    ///     开发状态
    /// </summary>
    public DevelopEnum.DevelopStatusEnum? DevelopStatus { get; set; }

    /// <summary>
    ///     实施状态
    /// </summary>
    public DevelopEnum.ImplementStatusEnum? ImplementStatus { get; set; }

    /// <summary>
    ///     备注
    /// </summary>
    public string? Remark { get; set; }

    /// <summary>
    ///     附件
    /// </summary>
    [Column(TypeName = "nvarchar(max)")]
    public string? Attachment { get; set; }

    /// <summary>
    ///     创建人Id
    /// </summary>
    [MaxLength(36)]
    public string? CreateStaffId { get; set; }

    /// <summary>
    ///     创建人名称
    /// </summary>
    [MaxLength(50)]
    public string? CreateStaffName { get; set; }

    /// <summary>
    ///     创建时间
    /// </summary>
    public DateTime CreateTime { get; set; }

    /// <summary>
    ///     是否删除
    /// </summary>
    public bool IsDelete { get; set; }

    /// <summary>
    ///     已付金额
    /// </summary>
    [Column(TypeName = "decimal(18,2)")]
    public decimal? PayAmount { get; set; }

    /// <summary>
    ///     总金额
    /// </summary>
    [Column(TypeName = "decimal(18,2)")]
    public decimal? TotalAmount { get; set; }
}